package com.lebang.example;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

public class CencesNewusersCityscaleExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Long offset;

    public CencesNewusersCityscaleExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Long offset) {
        this.offset = offset;
    }

    public Long getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(LocalDate value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(LocalDate value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(LocalDate value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(LocalDate value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(LocalDate value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(LocalDate value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<LocalDate> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<LocalDate> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(LocalDate value1, LocalDate value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(LocalDate value1, LocalDate value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andTimeIsNull() {
            addCriterion("`time` is null");
            return (Criteria) this;
        }

        public Criteria andTimeIsNotNull() {
            addCriterion("`time` is not null");
            return (Criteria) this;
        }

        public Criteria andTimeEqualTo(Integer value) {
            addCriterion("`time` =", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotEqualTo(Integer value) {
            addCriterion("`time` <>", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeGreaterThan(Integer value) {
            addCriterion("`time` >", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeGreaterThanOrEqualTo(Integer value) {
            addCriterion("`time` >=", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeLessThan(Integer value) {
            addCriterion("`time` <", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeLessThanOrEqualTo(Integer value) {
            addCriterion("`time` <=", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeIn(List<Integer> values) {
            addCriterion("`time` in", values, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotIn(List<Integer> values) {
            addCriterion("`time` not in", values, "time");
            return (Criteria) this;
        }

        public Criteria andTimeBetween(Integer value1, Integer value2) {
            addCriterion("`time` between", value1, value2, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotBetween(Integer value1, Integer value2) {
            addCriterion("`time` not between", value1, value2, "time");
            return (Criteria) this;
        }

        public Criteria andCityIsNull() {
            addCriterion("city is null");
            return (Criteria) this;
        }

        public Criteria andCityIsNotNull() {
            addCriterion("city is not null");
            return (Criteria) this;
        }

        public Criteria andCityEqualTo(String value) {
            addCriterion("city =", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityNotEqualTo(String value) {
            addCriterion("city <>", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityGreaterThan(String value) {
            addCriterion("city >", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityGreaterThanOrEqualTo(String value) {
            addCriterion("city >=", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityLessThan(String value) {
            addCriterion("city <", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityLessThanOrEqualTo(String value) {
            addCriterion("city <=", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityLike(String value) {
            addCriterion("city like", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityNotLike(String value) {
            addCriterion("city not like", value, "city");
            return (Criteria) this;
        }

        public Criteria andCityIn(List<String> values) {
            addCriterion("city in", values, "city");
            return (Criteria) this;
        }

        public Criteria andCityNotIn(List<String> values) {
            addCriterion("city not in", values, "city");
            return (Criteria) this;
        }

        public Criteria andCityBetween(String value1, String value2) {
            addCriterion("city between", value1, value2, "city");
            return (Criteria) this;
        }

        public Criteria andCityNotBetween(String value1, String value2) {
            addCriterion("city not between", value1, value2, "city");
            return (Criteria) this;
        }

        public Criteria andAppStoreIsNull() {
            addCriterion("app_store is null");
            return (Criteria) this;
        }

        public Criteria andAppStoreIsNotNull() {
            addCriterion("app_store is not null");
            return (Criteria) this;
        }

        public Criteria andAppStoreEqualTo(String value) {
            addCriterion("app_store =", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreNotEqualTo(String value) {
            addCriterion("app_store <>", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreGreaterThan(String value) {
            addCriterion("app_store >", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreGreaterThanOrEqualTo(String value) {
            addCriterion("app_store >=", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreLessThan(String value) {
            addCriterion("app_store <", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreLessThanOrEqualTo(String value) {
            addCriterion("app_store <=", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreLike(String value) {
            addCriterion("app_store like", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreNotLike(String value) {
            addCriterion("app_store not like", value, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreIn(List<String> values) {
            addCriterion("app_store in", values, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreNotIn(List<String> values) {
            addCriterion("app_store not in", values, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreBetween(String value1, String value2) {
            addCriterion("app_store between", value1, value2, "appStore");
            return (Criteria) this;
        }

        public Criteria andAppStoreNotBetween(String value1, String value2) {
            addCriterion("app_store not between", value1, value2, "appStore");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountIsNull() {
            addCriterion("new_users_count is null");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountIsNotNull() {
            addCriterion("new_users_count is not null");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountEqualTo(Integer value) {
            addCriterion("new_users_count =", value, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountNotEqualTo(Integer value) {
            addCriterion("new_users_count <>", value, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountGreaterThan(Integer value) {
            addCriterion("new_users_count >", value, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("new_users_count >=", value, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountLessThan(Integer value) {
            addCriterion("new_users_count <", value, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountLessThanOrEqualTo(Integer value) {
            addCriterion("new_users_count <=", value, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountIn(List<Integer> values) {
            addCriterion("new_users_count in", values, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountNotIn(List<Integer> values) {
            addCriterion("new_users_count not in", values, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountBetween(Integer value1, Integer value2) {
            addCriterion("new_users_count between", value1, value2, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUsersCountNotBetween(Integer value1, Integer value2) {
            addCriterion("new_users_count not between", value1, value2, "newUsersCount");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleIsNull() {
            addCriterion("new_user_scale is null");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleIsNotNull() {
            addCriterion("new_user_scale is not null");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleEqualTo(Float value) {
            addCriterion("new_user_scale =", value, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleNotEqualTo(Float value) {
            addCriterion("new_user_scale <>", value, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleGreaterThan(Float value) {
            addCriterion("new_user_scale >", value, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleGreaterThanOrEqualTo(Float value) {
            addCriterion("new_user_scale >=", value, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleLessThan(Float value) {
            addCriterion("new_user_scale <", value, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleLessThanOrEqualTo(Float value) {
            addCriterion("new_user_scale <=", value, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleIn(List<Float> values) {
            addCriterion("new_user_scale in", values, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleNotIn(List<Float> values) {
            addCriterion("new_user_scale not in", values, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleBetween(Float value1, Float value2) {
            addCriterion("new_user_scale between", value1, value2, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andNewUserScaleNotBetween(Float value1, Float value2) {
            addCriterion("new_user_scale not between", value1, value2, "newUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountIsNull() {
            addCriterion("active_user_count is null");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountIsNotNull() {
            addCriterion("active_user_count is not null");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountEqualTo(Integer value) {
            addCriterion("active_user_count =", value, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountNotEqualTo(Integer value) {
            addCriterion("active_user_count <>", value, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountGreaterThan(Integer value) {
            addCriterion("active_user_count >", value, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("active_user_count >=", value, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountLessThan(Integer value) {
            addCriterion("active_user_count <", value, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountLessThanOrEqualTo(Integer value) {
            addCriterion("active_user_count <=", value, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountIn(List<Integer> values) {
            addCriterion("active_user_count in", values, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountNotIn(List<Integer> values) {
            addCriterion("active_user_count not in", values, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountBetween(Integer value1, Integer value2) {
            addCriterion("active_user_count between", value1, value2, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserCountNotBetween(Integer value1, Integer value2) {
            addCriterion("active_user_count not between", value1, value2, "activeUserCount");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleIsNull() {
            addCriterion("active_user_scale is null");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleIsNotNull() {
            addCriterion("active_user_scale is not null");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleEqualTo(Float value) {
            addCriterion("active_user_scale =", value, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleNotEqualTo(Float value) {
            addCriterion("active_user_scale <>", value, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleGreaterThan(Float value) {
            addCriterion("active_user_scale >", value, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleGreaterThanOrEqualTo(Float value) {
            addCriterion("active_user_scale >=", value, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleLessThan(Float value) {
            addCriterion("active_user_scale <", value, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleLessThanOrEqualTo(Float value) {
            addCriterion("active_user_scale <=", value, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleIn(List<Float> values) {
            addCriterion("active_user_scale in", values, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleNotIn(List<Float> values) {
            addCriterion("active_user_scale not in", values, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleBetween(Float value1, Float value2) {
            addCriterion("active_user_scale between", value1, value2, "activeUserScale");
            return (Criteria) this;
        }

        public Criteria andActiveUserScaleNotBetween(Float value1, Float value2) {
            addCriterion("active_user_scale not between", value1, value2, "activeUserScale");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}